﻿namespace AladdinGameFramework.Debugger
{
	/// <summary>
	/// 调试窗口接口。
	/// </summary>
	public interface IDebuggerWindow
	{
		/// <summary>
		/// 初始化调试窗口。
		/// </summary>
		/// <param name="args">初始化调试窗口参数。</param>
		void Initialize(params object[] args);

		/// <summary>
		/// 关闭调试窗口。
		/// </summary>
		void Shutdown();

		/// <summary>
		/// 进入调试窗口。
		/// </summary>
		void OnEnter();

		/// <summary>
		/// 离开调试窗口。
		/// </summary>
		void OnLeave();

		/// <summary>
		/// 调试窗口轮询。
		/// </summary>
		/// <param name="elapseSeconds">逻辑流逝时间，以秒为单位。</param>
		/// <param name="realElapseSeconds">真实流逝时间，以秒为单位。</param>
		void OnUpdate(float elapseSeconds, float realElapseSeconds);

		/// <summary>
		/// 调试窗口绘制。
		/// </summary>
		void OnDraw();
	}
}
